/**
 * @autor my
 * 2017/8/28.
 */
public class RandomDateSort {
    /*准备一个长度是9的日期数组使用1970年-2000年之间的随机日期初始化该数组
按照这些日期的时间进行升序排序比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面，
因为它的时间更小，虽然日期更大
*/
    public static void main(String[] args) {
        RandomDate[] randomDate=new RandomDate[9];
        //用于下边的替换
        RandomDate tmp=new RandomDate();
        //初始化randomDate
        for (int i=0;i<randomDate.length;i++){
            randomDate[i]=new RandomDate();
            System.out.print(randomDate[i].getYear()+"-"+randomDate[i].getMonth()+"-"+
                    randomDate[i].randomDay()+" "+randomDate[i].getHour()+":"+randomDate[i].getMinute()
                    +":"+randomDate[i].getSecond()+"   ");
        }
        System.out.println();
        //这里我用了两种方法排序，冒泡排序和快速排序 ，冒泡排序我就注释掉了
        /*for (int j=randomDate.length-1;j>=0;j--) {
            for (int i = 0; i < j; i++) {
                if (randomDate[i].getHour() < randomDate[i + 1].getHour()) {
                    tmp = randomDate[i + 1];
                    randomDate[i + 1] = randomDate[i];
                    randomDate[i] = tmp;
                }
                if (randomDate[i].getHour()==randomDate[i+1].getHour()){
                    if (randomDate[i].getMinute() < randomDate[i + 1].getMinute()) {
                        tmp = randomDate[i + 1];
                        randomDate[i + 1] = randomDate[i];
                        randomDate[i] = tmp;
                    }
                    if (randomDate[i].getHour()==randomDate[i+1].getHour()) {
                        if (randomDate[i].getSecond() < randomDate[i + 1].getSecond()) {
                            tmp = randomDate[i + 1];
                            randomDate[i + 1] = randomDate[i];
                            randomDate[i] = tmp;
                        }
                    }
                }
            }
        }*/
        //快速排序实现：
        QuickSort.quickSortToDate(randomDate,0,8);
        //打印排序好后的结果
        for (int i=0;i<randomDate.length;i++){
            System.out.print(randomDate[i].getYear()+"-"+randomDate[i].getMonth()+"-"+
                    randomDate[i].randomDay()+" "+randomDate[i].getHour()+":"+randomDate[i].getMinute()
                    +":"+randomDate[i].getSecond()+"   ");
        }
    }
}
